<?php

class ProdutosModel extends Produtos{
	
	public function insertProdutos($arr){
		try {
			$obj = new Produtos();
			foreach($arr as $chave => $valor){
				if($chave != 'files'){
					$chave = ucfirst($chave);
					$met = 'set'.$chave;
					$obj->$met($valor);
				}
			}
			$db = new Db;
			$db->Insert('produtos',$obj);
			$this->lista = $db->res;
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function updateProdutos($arr){
		try {
			$obj = new Produtos();
			foreach($arr as $chave => $valor){
				if($chave != 'files'){
					$chave = ucfirst($chave);
					$met = 'set'.$chave;
					$obj->$met("'".$valor."'");
				}
			}
			$db = new Db;
			$db->Update('produtos',$obj);
			$this->lista = $db->res;
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function deleteProdutos($id){
		try {
			$db = new Db;
			$db->Delete('produtos',$id);
			$this->lista = $db->res;
		} catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function consultarProdutos($parametros){
		try {
			$campos = array('*');
			$where = 'idprodutos = '.$parametros;
			$order = '';
			$db = new Db;
			$db->Select('produtos',$campos,$where,$order);
			$this->lista = $db->res[0];
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function listarProdutos($parametros){
		try {
			$campos = array('*','p.nome AS nome_pro','s.nome AS nome_sub','c.nome AS nome_cat');
			$where = '';
			$order = 'p.idprodutos DESC';
			$db = new Db;
			$db->Select('produtos AS p INNER JOIN subcategorias AS s ON p.idsubcategorias = s.idsubcategorias INNER JOIN categorias AS c ON c.idcategorias = s.idcategorias',$campos,$where,$order);
			$view = new ProdutosView();
			$this->lista = $view->listar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function visualizarProdutos($parametros){
		try {
			$campos = array('*');
			$where = 'r.destaque = 1 AND p.idcolecoes = '.$parametros;
			$order = 'p.idprodutos DESC LIMIT '.$parametros;
			$db = new Db;
			$db->Select('produtos AS p INNER JOIN referencias AS r ON r.idprodutos = p.idprodutos',$campos,$where,$order);
			$view = new ProdutosView();
			$this->lista = $view->visualizar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function capaProdutos($parametros){
		try {
			$campos = array('*','p.nome AS nome_pro');
			$where = 'r.destaque = 1 GROUP BY p.idprodutos';
			$order = 'p.idprodutos DESC LIMIT 6';
			$db = new Db;
			$db->Select('produtos AS p INNER JOIN referencias AS r ON r.idprodutos = p.idprodutos',$campos,$where,$order);
			$view = new ProdutosView();
			$this->lista = $view->visualizar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function categoriasProdutos($parametros){
		try {
			$campos = array('*','p.nome AS nome_pro');
			if($parametros[0] == 'c'){
				$where = 'r.destaque = 1 AND c.idcategorias = '.$parametros[1].'  GROUP BY p.idprodutos';
			}elseif($parametros[0] == 's'){
				$where = 'r.destaque = 1 AND s.idsubcategorias = '.$parametros[1].'  GROUP BY p.idprodutos';
			}
			$order = 'p.idprodutos DESC';
			$db = new Db;
			$db->Select('produtos AS p INNER JOIN referencias AS r ON r.idprodutos = p.idprodutos INNER JOIN subcategorias AS s ON s.idsubcategorias = p.idsubcategorias INNER JOIN categorias AS c ON c.idcategorias = s.idcategorias',$campos,$where,$order);
			$view = new ProdutosView();
			$this->lista = $view->visualizar($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
	public function dropdownProdutos(){
		try {
			$campos = array('*');
			$where = '';
			$order = 'nome ASC';
			$db = new Db;
			$db->Select('produtos',$campos,$where,$order);
			$view = new ProdutosView();
			$this->lista = $view->select($db->res);
		}catch (Exception $e) {
			echo 'Erro: ',  $e->getMessage();
		}
	}
}
?>